ZoomInfo Company & Contacts Scraper — Leads | No Login
Pricing
from $19.90 / 1,000 company records
ZoomInfo Company & Contacts Scraper — Leads | No Login
Scrape public ZoomInfo company profiles into rich JSON: firmographics, executives, competitors, technologies, news, funding — PLUS one lead record per person (name, title, LinkedIn, location, email pattern, masked email/phone). Paste URLs, get companies + contacts. No login, no API key.
Pricing
from $19.90 / 1,000 company records
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
ZoomInfo Company & Contacts Scraper
Turn public ZoomInfo company profile pages into rich, structured JSON — company firmographics PLUS the people / leads ZoomInfo surfaces on those pages. Paste one or more company profile URLs and get back, in a single dataset:
- One rich company record per URL — firmographics enriched with nested arrays: executives, recently-hired people, competitors, technologies, scoops, news, funding rounds, acquisitions, department headcounts, and buyer-intent topics.
- One flat lead record per person found on the company page (executives + recently-hired) — name, title, department, LinkedIn URL, location, and contact data (email pattern, masked current email/phone, full historical emails).
This actor scrapes the public, logged-out ZoomInfo company pages
(/c/<slug>/<id>) and person pages (/p/<slug>/<id>). It does not log in and does
not use ZoomInfo's paid API. It returns exactly what ZoomInfo renders to logged-out
visitors — current emails/phones are returned masked (as ZoomInfo masks them,
e.g. h***@zoominfo.com), while the company email pattern is derived from the
public historical addresses ZoomInfo shows in full.
⚖️ Legal & ToS notice — read before you run
This tool collects the publicly visible, logged-out information ZoomInfo exposes (including the public people roster on company pages). You are responsible for your own use of the output. ZoomInfo's Terms of Service and applicable data-protection laws (GDPR / CCPA / etc.) govern what you may collect and how you may use it — especially person-level data. Scrape responsibly, respect rate limits, and ensure you have a lawful basis for processing any personal data in the output. If you need verified / unmasked contact data, use ZoomInfo's official paid API.
Output — record types
Every dataset item carries a record_type field: "company" or "person". The
Companies and Contacts / Leads dataset views split them for you.
Company record (record_type: "company")
| Field | Example |
|---|---|
company_name / short_name / also_known_as | ZoomInfo Technologies LLC / aliases list |
website / logo | www.zoominfo.com |
hq_location + hq_street/hq_city/hq_state/hq_country/hq_zip | structured address |
industry | Customer Engagement Platforms, Software |
revenue_band / revenue_usd_thousands | $1.3 Billion / 1254000 |
employee_band / employee_count | 1K - 5K / 3180 |
founded_year | 2000 |
naics / sic | 54,541 / 73,737 |
is_public / stock_ticker | Public / NASDAQ: GTM |
phone / fax | (866) 904-9666 / (617) 507-8187 |
linkedin_url / twitter_url / facebook_url / instagram_url | company socials |
total_funding | 2382555 |
description / summary | public text |
employees_likely_to_engage | engagement counter |
executives[] | {person_id, full_name, first_name, last_name, title, profile_url, org_chart_tier, likely_to_engage_email/phone} |
recently_hired[] | {person_id, full_name, title, profile_url, job_start_date, likely_to_engage_*} |
competitors[] | {company_id, name, website, revenue, employee_count, founded_year, is_public, ceo_name, ceo_profile_url} |
technologies[] | {name, vendor, relationship: used|owned, market_share?, companies_using?} |
scoops[] | {description, date, types[], topics[], link} (open roles, leadership moves, signals) |
news[] | {title, url, date, domain, snippet} |
fundings[] | {date, amount, amount_value, round, investors[]} |
acquisitions[] | {company_id, name, date} |
departments[] | {level, count} (C-Level / VP / Director / Manager / …) |
intents[] | {topic, signal_score, signals_number} (buyer-intent) |
executive_count / recently_hired_count / contacts_scraped | counts |
top_executives_url / profile_url / scraped_at | provenance |
Person / lead record (record_type: "person")
Emitted when Include contacts is on (default). One row per person fetched from the company page roster.
| Field | Example |
|---|---|
full_name / first_name / last_name | Henry Schuck |
title / job_function / department / management_level | Founder & CEO / Executive / C-Suite / C-Level |
linkedin_url | https://www.linkedin.com/in/hschuck |
email | masked current email, e.g. h***@zoominfo.com |
email_pattern | derived, e.g. {first}.{last}@zoominfo.com |
past_emails[] | full historical addresses ZoomInfo exposes publicly |
phone / mobile | masked, e.g. (360) ***-**** |
company_phone | full, (866) 904-9666 |
city / state / metro_area / country / postal_code / street | person location |
education / biography / current_job_duration | profile detail |
company_id / company_name / company_website | employer linkage |
profile_url / scraped_at | provenance |
About emails & phones (important, honest): logged out, ZoomInfo masks the current email and phone (
h***@…,(360) ***-****). What it exposes in full is a list of historical addresses (past_emails) — from which this actor derives the company'semail_pattern(e.g.{first}.{last}@company.com). That pattern, plus the person's name + LinkedIn, is what makes these usable B2B leads. We only emit a pattern on the person's current employer domain; if we can't confirm it,email_patternisnullrather than a guess on a stale domain.
Input
| Field | Description |
|---|---|
| Company profile URLs | Public profile URLs https://www.zoominfo.com/c/<slug>/<id>. |
| Include contacts / leads | Default on. Also fetch person pages and emit lead rows. |
| Max contacts per company | Ceiling on person pages per company (default 25). |
| Max companies | Safety ceiling on company records. |
| Proxy exit country | Two-letter exit country (default us). |
How to find profile URLs: search the web for site:zoominfo.com/c <company name>
— the first result is usually the company's public profile. Copy that URL in.
{"companyUrls": ["https://www.zoominfo.com/c/zoominfo-technologies-llc/344589814"],"includeContacts": true,"maxContactsPerCompany": 25,"maxItems": 100}
How it works
ZoomInfo uses enterprise-grade protection. This actor routes every request through a managed proxy fully baked into the actor — you never supply a proxy, API key, or login. All transport cost is included in the per-record price.
Parsing is anchored on the page's structured server-rendered data (the Angular SSR
ng-state blob and JSON-LD), not on fragile CSS class names — so it keeps
working across ZoomInfo's frequent front-end rebuilds. The first request to a cold
domain runs a full unlock cycle (can take 60–120 s); requests retry with backoff so
the warm cache then serves fast.
Pricing
Pay-per-result with two separate events:
company-record— charged once per company record delivered.contact-record— charged once per person / lead record delivered.
Failed or blocked URLs are skipped and not charged. Turn Include contacts off to get company records only.
Limitations
- Input is profile URLs (the reliable public path). Logged-out company-name search does not return query-specific results without authenticating, which this actor never does.
- Revenue / employee figures are the bands ZoomInfo publishes (e.g.
1K - 5K). - Current emails and direct phones are masked by ZoomInfo logged out; the actor
returns them as-is (masked) plus the derived
email_patternand fullpast_emails. It does not unmask paywalled data. - The contact roster is the set of people ZoomInfo surfaces on the public company page (executives + recently-hired), not ZoomInfo's full employee database.